/*
* Copyright 2024 NXP
* NXP Confidential and Proprietary. This software is owned or controlled by NXP and may only be used strictly in
* accordance with the applicable license terms. By expressly accepting such terms or by downloading, installing,
* activating and/or otherwise using the software, you are agreeing that you have read, and that you agree to
* comply with and are bound by, such license terms.  If you do not agree to be bound by the applicable license
* terms, then you may not retain, install, activate or otherwise use the software.
*/

#ifndef GUI_GUIDER_H
#define GUI_GUIDER_H
#ifdef __cplusplus
extern "C" {
#endif

#include "lvgl.h"

typedef struct
{
  
	lv_obj_t *screen;
	bool screen_del;
	lv_obj_t *screen_cont_1;
	lv_obj_t *screen_btn_1;
	lv_obj_t *screen_btn_1_label;
	lv_obj_t *screen_datetext_1;
	lv_obj_t *screen_btn_2;
	lv_obj_t *screen_btn_2_label;
	lv_obj_t *screen_btn_3;
	lv_obj_t *screen_btn_3_label;
	lv_obj_t *screen_digital_clock_1;
	lv_obj_t *screen_ddlist_1;
	lv_obj_t *screen_cont_2;
	lv_obj_t *screen_btn_4;
	lv_obj_t *screen_btn_4_label;
	lv_obj_t *screen_btn_5;
	lv_obj_t *screen_btn_5_label;
	lv_obj_t *screen_btn_6;
	lv_obj_t *screen_btn_6_label;
	lv_obj_t *screen_btn_7;
	lv_obj_t *screen_btn_7_label;
	lv_obj_t *screen_btn_8;
	lv_obj_t *screen_btn_8_label;
	lv_obj_t *screen_1;
	bool screen_1_del;
	lv_obj_t *screen_1_cont_1;
	lv_obj_t *screen_1_btn_3;
	lv_obj_t *screen_1_btn_3_label;
	lv_obj_t *screen_1_datetext_1;
	lv_obj_t *screen_1_btn_2;
	lv_obj_t *screen_1_btn_2_label;
	lv_obj_t *screen_1_btn_1;
	lv_obj_t *screen_1_btn_1_label;
	lv_obj_t *screen_1_digital_clock_1;
	lv_obj_t *screen_1_cont_2;
	lv_obj_t *screen_1_btn_4;
	lv_obj_t *screen_1_btn_4_label;
	lv_obj_t *screen_1_slider_1;
	lv_obj_t *screen_1_label_1;
	lv_obj_t *screen_1_msgbox_1;
	lv_obj_t *screen_2;
	bool screen_2_del;
	lv_obj_t *screen_2_cont_2;
	lv_obj_t *screen_2_btn_4;
	lv_obj_t *screen_2_btn_4_label;
	lv_obj_t *screen_2_cont_1;
	lv_obj_t *screen_2_btn_3;
	lv_obj_t *screen_2_btn_3_label;
	lv_obj_t *screen_2_datetext_1;
	lv_obj_t *screen_2_btn_2;
	lv_obj_t *screen_2_btn_2_label;
	lv_obj_t *screen_2_btn_1;
	lv_obj_t *screen_2_btn_1_label;
	lv_obj_t *screen_2_digital_clock_1;
	lv_obj_t *screen_2_list_1;
	lv_obj_t *screen_2_list_1_item0;
	lv_obj_t *screen_2_list_1_item1;
	lv_obj_t *screen_2_list_1_item2;
	lv_obj_t *screen_2_list_1_item3;
	lv_obj_t *screen_2_list_1_item4;
	lv_obj_t *screen_2_list_1_item5;
	lv_obj_t *screen_2_list_1_item6;
	lv_obj_t *screen_2_list_1_item7;
	lv_obj_t *screen_2_list_1_item8;
	lv_obj_t *screen_2_list_1_item9;
	lv_obj_t *screen_2_list_1_item10;
	lv_obj_t *screen_2_list_1_item11;
	lv_obj_t *screen_2_list_1_item12;
	lv_obj_t *screen_2_list_1_item13;
	lv_obj_t *screen_2_list_1_item14;
	lv_obj_t *screen_2_list_1_item15;
	lv_obj_t *screen_2_list_1_item16;
	lv_obj_t *screen_2_list_1_item17;
	lv_obj_t *screen_2_list_1_item18;
	lv_obj_t *screen_2_list_1_item19;
	lv_obj_t *screen_2_cont_3;
	lv_obj_t *screen_2_btn_5;
	lv_obj_t *screen_2_btn_5_label;
	lv_obj_t *screen_3;
	bool screen_3_del;
	lv_obj_t *screen_3_cont_2;
	lv_obj_t *screen_3_btn_4;
	lv_obj_t *screen_3_btn_4_label;
	lv_obj_t *screen_3_cont_1;
	lv_obj_t *screen_3_btn_3;
	lv_obj_t *screen_3_btn_3_label;
	lv_obj_t *screen_3_datetext_1;
	lv_obj_t *screen_3_btn_2;
	lv_obj_t *screen_3_btn_2_label;
	lv_obj_t *screen_3_btn_1;
	lv_obj_t *screen_3_btn_1_label;
	lv_obj_t *screen_3_digital_clock_1;
	lv_obj_t *screen_3_led_1;
	lv_obj_t *screen_3_sw_1;
	lv_obj_t *screen_3_led_2;
	lv_obj_t *screen_3_led_3;
	lv_obj_t *screen_3_sw_2;
	lv_obj_t *screen_3_sw_3;
	lv_obj_t *screen_4;
	bool screen_4_del;
	lv_obj_t *screen_4_cont_2;
	lv_obj_t *screen_4_btn_4;
	lv_obj_t *screen_4_btn_4_label;
	lv_obj_t *screen_4_cont_1;
	lv_obj_t *screen_4_btn_3;
	lv_obj_t *screen_4_btn_3_label;
	lv_obj_t *screen_4_datetext_1;
	lv_obj_t *screen_4_btn_2;
	lv_obj_t *screen_4_btn_2_label;
	lv_obj_t *screen_4_btn_1;
	lv_obj_t *screen_4_btn_1_label;
	lv_obj_t *screen_4_digital_clock_1;
	lv_obj_t *screen_4_cont_3;
	lv_obj_t *screen_4_textprogress_1;
	lv_obj_t *screen_4_bar_1;
	lv_obj_t *screen_4_slider_1;
	lv_obj_t *screen_5;
	bool screen_5_del;
	lv_obj_t *screen_5_cont_2;
	lv_obj_t *screen_5_btn_4;
	lv_obj_t *screen_5_btn_4_label;
	lv_obj_t *screen_5_cont_1;
	lv_obj_t *screen_5_btn_3;
	lv_obj_t *screen_5_btn_3_label;
	lv_obj_t *screen_5_datetext_1;
	lv_obj_t *screen_5_btn_2;
	lv_obj_t *screen_5_btn_2_label;
	lv_obj_t *screen_5_btn_1;
	lv_obj_t *screen_5_btn_1_label;
	lv_obj_t *screen_5_digital_clock_1;
	lv_obj_t *screen_5_lottie_1;
	lv_obj_t *screen_6;
	bool screen_6_del;
	lv_obj_t *screen_6_cont_2;
	lv_obj_t *screen_6_btn_4;
	lv_obj_t *screen_6_btn_4_label;
	lv_obj_t *screen_6_cont_1;
	lv_obj_t *screen_6_btn_3;
	lv_obj_t *screen_6_btn_3_label;
	lv_obj_t *screen_6_datetext_1;
	lv_obj_t *screen_6_btn_2;
	lv_obj_t *screen_6_btn_2_label;
	lv_obj_t *screen_6_btn_1;
	lv_obj_t *screen_6_btn_1_label;
	lv_obj_t *screen_6_digital_clock_1;
	lv_obj_t *screen_6_list_1;
	lv_obj_t *screen_6_list_1_item0;
	lv_obj_t *screen_6_list_1_item1;
	lv_obj_t *screen_6_list_1_item2;
	lv_obj_t *screen_6_list_1_item3;
	lv_obj_t *screen_6_list_1_item4;
	lv_obj_t *screen_6_msgbox_1;
  int global_language;
}lv_ui;

typedef void (*ui_setup_scr_t)(lv_ui * ui);

void ui_init_style(lv_style_t * style);

void ui_load_scr_animation(lv_ui *ui, lv_obj_t ** new_scr, bool new_scr_del, bool * old_scr_del, ui_setup_scr_t setup_scr,
                           lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay, bool is_clean, bool auto_del);

void ui_move_animation(void * var, int32_t duration, int32_t delay, int32_t x_end, int32_t y_end, lv_anim_path_cb_t path_cb,
                       uint16_t repeat_cnt, uint32_t repeat_delay, uint32_t playback_time, uint32_t playback_delay,
                       lv_anim_start_cb_t start_cb, lv_anim_ready_cb_t ready_cb, lv_anim_deleted_cb_t deleted_cb);

void ui_scale_animation(void * var, int32_t duration, int32_t delay, int32_t width, int32_t height, lv_anim_path_cb_t path_cb,
                        uint16_t repeat_cnt, uint32_t repeat_delay, uint32_t playback_time, uint32_t playback_delay,
                        lv_anim_start_cb_t start_cb, lv_anim_ready_cb_t ready_cb, lv_anim_deleted_cb_t deleted_cb);

void ui_img_zoom_animation(void * var, int32_t duration, int32_t delay, int32_t zoom, lv_anim_path_cb_t path_cb,
                           uint16_t repeat_cnt, uint32_t repeat_delay, uint32_t playback_time, uint32_t playback_delay,
                           lv_anim_start_cb_t start_cb, lv_anim_ready_cb_t ready_cb, lv_anim_deleted_cb_t deleted_cb);

void ui_img_rotate_animation(void * var, int32_t duration, int32_t delay, lv_coord_t x, lv_coord_t y, int32_t rotate,
                   lv_anim_path_cb_t path_cb, uint16_t repeat_cnt, uint32_t repeat_delay, uint32_t playback_time,
                   uint32_t playback_delay, lv_anim_start_cb_t start_cb, lv_anim_ready_cb_t ready_cb, lv_anim_deleted_cb_t deleted_cb);

void init_scr_del_flag(lv_ui *ui);

void setup_ui(lv_ui *ui);


extern lv_ui guider_ui;
extern int global_language;


void setup_scr_screen(lv_ui *ui);
void setup_scr_screen_1(lv_ui *ui);
void setup_scr_screen_2(lv_ui *ui);
void setup_scr_screen_3(lv_ui *ui);
void setup_scr_screen_4(lv_ui *ui);
void setup_scr_screen_5(lv_ui *ui);
void setup_scr_screen_6(lv_ui *ui);

LV_IMG_DECLARE(_background_800x480);

LV_IMG_DECLARE(_home_30x30);

LV_IMG_DECLARE(_lighting_30x30);

LV_IMG_DECLARE(_wifi_30x30);

LV_IMG_DECLARE(_setting_30x30);

LV_IMG_DECLARE(_music_100x100);

LV_IMG_DECLARE(_light_100x100);

LV_IMG_DECLARE(_temperature_100x100);

LV_IMG_DECLARE(_camera_100x100);

LV_IMG_DECLARE(_background_800x480);

LV_IMG_DECLARE(_home_30x30);

LV_IMG_DECLARE(_lighting_30x30);

LV_IMG_DECLARE(_wifi_30x30);

LV_IMG_DECLARE(_setting_30x30);

LV_IMG_DECLARE(_background_800x480);

LV_IMG_DECLARE(_setting_30x30);

LV_IMG_DECLARE(_home_30x30);

LV_IMG_DECLARE(_lighting_30x30);

LV_IMG_DECLARE(_wifi_30x30);

LV_IMG_DECLARE(_music_play_495x251);

LV_IMG_DECLARE(_background_800x480);

LV_IMG_DECLARE(_setting_30x30);

LV_IMG_DECLARE(_home_30x30);

LV_IMG_DECLARE(_lighting_30x30);

LV_IMG_DECLARE(_wifi_30x30);

LV_IMG_DECLARE(_background_800x480);

LV_IMG_DECLARE(_setting_30x30);

LV_IMG_DECLARE(_home_30x30);

LV_IMG_DECLARE(_lighting_30x30);

LV_IMG_DECLARE(_wifi_30x30);

LV_IMG_DECLARE(_background_800x480);

LV_IMG_DECLARE(_setting_30x30);

LV_IMG_DECLARE(_home_30x30);

LV_IMG_DECLARE(_lighting_30x30);

LV_IMG_DECLARE(_wifi_30x30);
#define LV_LOT_DECLARE(array_name) extern const uint8_t array_name[];
LV_LOT_DECLARE(lottie_camera2);

LV_IMG_DECLARE(_background_800x480);

LV_IMG_DECLARE(_setting_30x30);

LV_IMG_DECLARE(_home_30x30);

LV_IMG_DECLARE(_lighting_30x30);

LV_IMG_DECLARE(_wifi_30x30);

LV_FONT_DECLARE(lv_font_montserratMedium_16)
LV_FONT_DECLARE(lv_font_montserratMedium_12)
LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_12)
LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_14)
LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_20)
LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_8)
LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_16)


#ifdef __cplusplus
}
#endif
#endif
